Method and system for determining location of mobile device

ABSTRACT

Provided herein are system, methods and computer readable storage media in facilitating the determination of a location of at least one mobile device. In providing such functionality, the system may be configured to, for example, receive contextual data corresponding to a contextual state of a mobile device, determine the location of a mobile device, and transmit the location of the mobile device to at least one other mobile device.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.14/949,750, which was filed on Nov. 23, 2015, and entitled “Method andSystem for Determining Location of Mobile Device”, which is acontinuation of U.S. patent application Ser. No. 13/835,276, which wasfiled on Mar. 15, 2013 and has issued as U.S. Pat. No. 9,226,110,entitled Method and System for Determining Location of Mobile Device,and claims the benefit of U.S. Provisional Patent Application No.61/618,693, filed Mar. 31, 2012, entitled “Method and system forpower-efficient location tracking for location-based services on mobiledevices”.

The entirety of the disclosures of each of the above-referencedapplications is hereby incorporated by reference for all purposes.

TECHNICAL FIELD

The present description relates to determining a location of a mobiledevice. This description more specifically relates to dynamicallydetermining the location of at least one mobile device using social,local and other contextual parameters of a user and the at least onemobile device.

BACKGROUND

Location based services allow for a user to see where friends, peoplewith common interests, venues, merchants and/or other points ofinterests are located with respect to the user. In addition, socialnetworking or social discovery services may be enhanced by informationprovided by the location of a mobile device, such as providing servicesbased upon the number of mobile devices located within a particularlocation.

Many location based services require a user to “check-in” or providemanual updates corresponding to the location of the mobile device.Accordingly, manual updates and/or “check-in” procedures may not providethe resolution, fidelity, convenience, or efficiency that an automatic,passive location tracking service provides. In addition, some proceduresmay determine a location of a mobile device based on arbitraryparameters, such as an arbitrary time interval. Accordingly, there is aneed for a system and method for determining the location of a mobiledevice in an efficient and practical manner.

BRIEF SUMMARY

In general, example embodiments of the present invention provide hereinsystems, methods and computer readable storage media for facilitatingthe determination of the location of a mobile device. Among otherthings, embodiments discussed herein can be configured to receivecontextual data from at least a first mobile device, determine thevelocity and acceleration of the first mobile device, predict a futurelocation of the first mobile device, and determine a new location of thefirst mobile device. Some embodiments may be configured to transmit datacorresponding to the new location of the first mobile device to at leastone other mobile device. Some embodiments discussed herein can beconfigured to aid in predicting the location of a mobile device, whichpromotes efficient location based tracking of a plurality of mobiledevices.

Other systems, methods, and features will be, or will become, apparentto one with skill in the art upon examination of the following figuresand detailed description. It is intended that all such additionalsystems, methods, features and be included within this description, bewithin the scope of the disclosure, and be protected by the followingclaims.

BRIEF DESCRIPTION OF THE DRAWINGS

Having thus described embodiments of the invention in general terms,reference will now be made to the accompanying drawings, which are notnecessarily drawn to scale, and wherein:

FIG. 1 illustrates an example system in accordance with some embodimentsdiscussed herein;

FIG. 2 illustrates a block diagram of circuitry which may be included ina mobile device locating system and/or a mobile device according to anexample embodiment;

FIG. 3 illustrates a block diagram of a protocol stack used by themobile device locating system and/or mobile device according to anexample embodiment;

FIG. 4 illustrates a screen capture of an interface for controllingsharing permissions according to an example embodiment;

FIG. 5 illustrates a screen capture of a map interface according to anexample embodiment;

FIG. 6 illustrates a flow chart detailing a method of determining alocation of a mobile device according to an example embodiment; and

FIG. 7 illustrates a flow chart detailing a method of determining alocation of a mobile device according to an example embodiment.

DETAILED DESCRIPTION

Embodiments of the present invention now will be described more fullyhereinafter with reference to the accompanying drawings, in which some,but not all embodiments of the inventions are shown. Indeed, embodimentsof the invention may be embodied in many different forms and should notbe construed as limited to the embodiments set forth herein; rather,these embodiments are provided so that this disclosure will satisfyapplicable legal requirements. Like numbers refer to like elementsthroughout.

As used herein, the terms “data,” “content,” “information” and similarterms may be used interchangeably to refer to data capable of beingcaptured, transmitted, received, displayed and/or stored in accordancewith various example embodiments. Thus, use of any such terms should notbe taken to limit the spirit and scope of the disclosure. Further, wherea computing device is described herein to receive data from anothercomputing device, it will be appreciated that the data may be receiveddirectly from the another computing device or may be received indirectlyvia one or more intermediary computing devices, such as, for example,one or more servers, relays, routers, network access points, basestations, and/or the like. Similarly, where a computing device isdescribed herein to send data to another computing device, it will beappreciated that the data may be sent directly to the another computingdevice or may be sent indirectly via one or more intermediary computingdevices, such as, for example, one or more servers, relays, routers,network access points, base stations, and/or the like.

The principles described herein may be embodied in many different forms.Not all of the depicted components may be required, however, and someimplementations may include additional, different, or fewer components.Variations in the arrangement and type of the components may be madewithout departing from the spirit or scope of the claims as set forthherein. Additional, different, or fewer components may be provided.

As discussed herein, a first user may request the location of at leastone mobile device of another user. For example, a group of friends oracquaintances may each have a mobile device, such as a smartphone, alaptop, a mobile computing device, a tablet computing device, and/or thelike. Accordingly, in an instance where the group of friends may decideto meet one another, one person may request the location of at least onemobile device of one friend so as to determine where the friend islocated. In some embodiments, the person may request the location of atleast one mobile device of one friend so as to accurately predict and/ordetermine where the friend may be in the near future.

In this regard, embodiments discussed herein may be configured toadvantageously provide for efficient location-based tracking of a numberof mobile devices. For example, embodiments of the present invention mayadvantageously provide for predicting a new location of a mobile devicewithout the mobile device having to consume power to transmit thelocation of the mobile device each time the location of the mobiledevice is requested. Accordingly, embodiments may provide forlocation-based tracking that is highly accurate while preserving thepower of a mobile device and/or minimizing the power usage by the mobiledevice.

Referring to FIG. 1, FIG. 1 illustrates a system 100 including anexample network architecture, which may include one or more devices andsub-systems that are configured to implement some embodiments discussedherein. A number of users may each have a mobile device 110A, 110Z, suchas a smartphone, a laptop, a mobile computing device, a tablet computingdevice, and/or the like. As shown in FIG. 1, mobile device locatingsystem 102 may be coupled to one or more mobile devices 110A, 110Z via acommunications interface 152 that is configured to communicate withnetwork 101.

Network 101 may include any wired or wireless communication networkincluding, for example, a wired or wireless local area network (LAN),personal area network (PAN), metropolitan area network (MAN), wide areanetwork (WAN), mobile broadband network, or the like, as well as anyhardware, software and/or firmware required to implement it (such as,e.g., network routers, etc.). For example, network 101 may include acellular telephone, a 202.11, 202.16, 202.20, and/or WiMax network.Further, the network 101 may include a public network, such as theInternet, a private network, such as an intranet, or combinationsthereof, and may utilize a variety of networking and/or communicationprotocols now available or later developed including, but not limited toTCP/IP based networking protocols.

In this regard, FIG. 3 illustrates one example protocol stack forcommunicating between the mobile devices 110A, 110Z and the mobiledevice locating system 102. According to one embodiment, mobile devicelocating system 102 and at least one mobile device 110A may communicatewith one another by maintaining an open socket connection. In oneembodiment, the protocol stack 300 may be configured to maintain theopen socket connection between the mobile device locating system 102 andat least one mobile device. As shown in FIG. 3, the protocol stack 300may include a typical base datagram protocol for data communication,such as a TCP/IP based networking protocol 301. In addition, theprotocol stack 300 may include a protocol configured to be prioritizedfor communication between the mobile device locating system 102 and theat least one mobile device, such as, for example, a VoIP protocol 302.

As discussed herein, embodiments of the present invention mayadvantageously provide for efficient location tracking of a mobiledevice. In one embodiment, the VoIP protocol 302 may be configured forcommunicating format and headers for a datagram, such as thosecommunicated by the base datagram protocol. The at least one mobiledevice 110A, 110Z may maintain an open socket connection between themobile device locating system 102 and the at least one mobile devicewith a VoIP protocol 302. In some embodiments, the at least one mobiledevice 110A, 110Z may be configured to transmit data using the VoIPprotocol 302 while being in a low powered state. As such, the at leastone mobile device 110A, 110Z may be configured to maintain the opensocket connection between the at least one mobile device and mobiledevice locating system 102 without being in a high-powered state.Further, the at least one mobile device 110A, 110Z may be configured tomaintain the open socket connection between the at least one mobiledevice and the mobile device locating system 102 without using theTCP/IP based networking protocol. As such, the mobile device locatingsystem 102 and the mobile device 110A, 110Z may be configured toadvantageously provide for location based tracking of a mobile device ina power efficient manner. According to some embodiments, the protocolstack 300 may further include an application specific protocol 303configured to communicate custom data formats for the application, whichmay allow for the mobile device locating system 102 to any one of the atleast one mobile devices 110A, 110Z.

Returning to FIG. 1, system 100 may include a mobile device locatingsystem 102, which may include, for example, a processor 150, a memory152, a mobile device locating computing device 154, a locationprediction module 104, and at least one contextual database 106.Location prediction module 104 can be any suitable network server and/orother type of processing device, such as mobile device locatingcomputing device 154. Contextual database 106 can be any suitablenetwork database configured to store contextual mobile device data, suchas data corresponding to the sharing relationship between any one of themobile devices, the fixed location data corresponding to the location ofknown networking and/or communication equipment, such as a wirelesslocal area network router and/or a cell phone tower. In this regard,mobile device locating system 102 may include for example, at least onebackend data server, network database, cloud computing device, amongother things. As discussed herein, the mobile devices 110A, 110Z may beany suitable mobile device, such as a cellular phone, tablet computer,smartphone, etc., or other type of mobile processing device that may beused for any suitable purpose.

As shown in FIG. 6, some embodiments of the present invention mayprovide a method for locating and/or predicting the location of a mobiledevice. An exemplary method, such as process 600, may be executed by oneor more devices (some examples of which are discussed in connection withFIGS. 1 and 2) to provide the displays of FIGS. 4 and 5. Process 600starts at 602. At 604, a mobile device locating system may receivemobile device contextual data. For example, a mobile device, such as anyone of the mobile devices 110A, 110Z illustrated in FIG. 1, may beconfigured to transmit data corresponding to at least on contextualstate of the mobile device. In one example, a mobile device 110A may beconfigured to transmit data corresponding to the velocity of the mobiledevice. In another example, the mobile device 110A may be configured totransmit data corresponding to accelerations of the mobile device. Themobile devices 110A, 110Z may be configured to transmit datacorresponding to any number of contextual states of the mobile device,such as data corresponding to an audio recording of ambient noiserecorded by the mobile device.

In addition, at 604, the mobile device locating system 102 may beconfigured to receive mobile device contextual data corresponding tosharing permission data. For example, a first mobile device 110A may beconfigured to transmit data to the mobile device locating system 102that corresponds with the sharing permissions of the first mobiledevice. Specifically, the first mobile device may be configured to sharelocation data with a second mobile device 110B, but not with a thirdmobile device 110C. In some embodiments, the mobile device may beconfigured to edit sharing permissions via a touch-sensitive displayscreen of the mobile device.

For example, FIG. 4 illustrates an example touch-sensitive displayscreen 400. With respect to FIG. 4, an application on a mobile devicemay be configured to indicate which users 406 have sufficient permissionto view the location of the mobile device. In addition, the display 400may include an online user status portion 403 and an offline user statusportion 404. A user identifier 406, which may include an avatar 405,such as a picture of the user, may be placed in either an online userstatus portion 403 or an offline user status portion 404 based at leastin part on whether the user has given sufficient permission to the userof the first mobile device to locate the user. For example, a firstmobile device 110A may be configured to share location data with anynumber of users by, for example, having a user provide an indication toa slide bar displayed on the display 400 in a first position 401. Insome embodiments, the first mobile device 110A may be configured toprohibit sharing location data with a particular user by, for example,having a user provide an indication to a slide bar displayed on thedisplay 400 in a second position 402. Accordingly, the user of the firstmobile device may change permission status as desired by sliding a slidebar between a first and second position. Although displayed as a slidebar in FIG. 4, one of ordinary skill in the art in light of thisdisclosure may appreciate that sharing permissions may be edited byreceiving an indication of any type on a mobile device, such as areceiving a touch input corresponding to a touch element, such as abutton, displayed on the touch-sensitive display 400.

According to some embodiments, the mobile device locating system 102, asshown in FIG. 1 for example, may be configured to store datacorresponding to sharing permissions of any one of the mobile devices.In addition, the plurality of mobile devices may be configured tocommunicate with the mobile device locating system 102 such that when afirst user provides an indication to a touch display corresponding to achange in sharing permissions for another user, the mobile devicelocating system 102 may be configured to receive an indicationcorresponding to the sharing permission change. As such, embodimentsherein may advantageously provide for a mobile device locating system102 configured to store data corresponding to the sharing permissionsand/or user relationships of the plurality of mobile devices and theircorresponding users.

Referring back to FIG. 6, a mobile device locating system 102 may beconfigured to then determine a velocity and acceleration of the mobiledevice at 606. For example, a mobile device locating system 102 may beconfigured to determine an acceleration of the mobile device 110A fromdata corresponding to the velocity of the mobile device over a givenperiod of time. Accordingly, the mobile device locating system 102 maybe configured to determine the acceleration of the mobile device fromthe velocity measurements taken at discrete times.

At 608, the mobile device locating system 102 may be configured topredict a future location of the mobile device, based at least in parton the contextual data received from the mobile device. In one exampleembodiment, the mobile device locating system 102 may use a Kalmanfilter or a Markov chain for predicting the future location of themobile device. For example, the mobile device locating system 102 mayuse contextual data received from a mobile device that corresponds tothe velocity of the mobile device and/or the acceleration of the mobiledevice. One of skill in the art may appreciate that any suitablegraphical model may be used to predict the future location of the mobiledevice. As discussed in greater detail herein, the mobile devicelocating system 102 may be configured to determine a new location of themobile device at 610. The process may end at 612.

FIG. 7 illustrates an exemplary method, such as process 700, forlocating and/or predicting the location of a mobile device. An exemplarymethod, such as process 700, may be executed by one or more devices(some examples of which are discussed in connection with FIGS. 1 and 2)to provide the displays of FIGS. 4 and 5. Process 700 starts at 702.

At 704, a mobile device locating system 102 may be configured to receivemobile device contextual data. For example, referring to FIG. 1, a firstmobile device 110A may be configured to transmit mobile devicecontextual data to the mobile device locating system 102 via network101. In one example embodiment, multiple mobile devices 110A, 110B,110C, 110D, 110E . . . 110Z may be configured to execute and run anapplication on the respective mobile devices that may be configured todetermine the location of the respective mobile devices and/or thelocations of any of the other mobile devices. For example, FIG. 5illustrates a display 500 of an example application.

Referring to FIG. 5, the display 500 may include a map portion 510 and adetailed information portion 503. In addition, the application may beconfigured to display on a touch-sensitive display 500 of a first mobiledevice the locations 501, 502 of the mobile devices for other users thatare currently online and have granted permission to the user of thefirst mobile device to access their respective locations. In addition,the display 500 may include button 504, which may be configured to, uponreceiving a touch input thereto, to center the map portion 510 of thedisplay to the location of the mobile device. Further, the display 500may include button 505, which may be configured to, upon receiving atouch input thereto, to display at least one map and applicationsettings editing portion onto the display 500.

As stated above, the application may be configured to display on atouch-sensitive display 500 of a first mobile device a detailedinformation portion 503 that may correspond to a selected locationannotation 501 displayed on the display 500. Accordingly, the detailedinformation portion 503 may provide information corresponding to theselected location annotation 101, such as the user's name, the elapsedtime since the location information has been updated, and/or the amountof time a user has been spent at a particular location. In addition, theapplication may be configured to transmit data corresponding to locationof the first mobile device 110A to the mobile device locating system102. For example, the first mobile device 110A may be configured totransmit data corresponding to the location of the mobile device and/orthe area of the map portion 510 displayed on the display 500 of themobile device, and accordingly, the mobile device locating system 102may be configured to receive such data from the first mobile device110A.

Further, any one of the mobile devices 110A, 110Z may be configured totransmit contextual data to the mobile device locating system 102, suchas data corresponding to the respective mobile device's velocity,acceleration and/or the like. In addition, the mobile device locatingsystem 102 may be configured to receive such contextual data at 704. Forexample, the mobile device locating system 102 may be configured toreceive data corresponding to an audio recording, video recording and/orother signal recording of the at least one mobile device at 704.

At 706, the mobile device locating system may be configured to determinea velocity and acceleration of the at least one mobile device 110A. Forexample, a mobile device locating system 102 may be configured todetermine an acceleration of the mobile device 110A from datacorresponding to the velocity of the mobile device over a given periodof time. Accordingly, the mobile device locating system 102 may beconfigured to determine the acceleration of the mobile device from thevelocity measurements taken at discrete times.

At 708, the mobile device locating system 102 may be configured topredict a future location of the mobile device, based at least in parton the contextual data received from the mobile device. In one exampleembodiment, the mobile device locating system 102 may use a Kalmanfilter or a Markov chain for predicting the future location of themobile device. For example, the mobile device locating system 102 mayuse contextual data received from a mobile device that corresponds tothe velocity of the mobile device and/or the acceleration of the mobiledevice so as to determine whether or not the mobile device is in motion.

At 710, the mobile device locating system 102 may be configured todetermine whether the predicted location of the mobile device meets anaccuracy threshold. The mobile device locating system 102 may beconfigured to determine that a predicted location of the first mobiledevice 110A does not meet an accuracy threshold if, for example, thecontextual data received by the mobile device locating system does notcorrespond to the predicted location. For example, a portion of thecontextual data may indicate that a first velocity vector andacceleration vector of the mobile device is in the same direction, whilea second velocity vector, corresponding to a velocity measurement takensubsequently to the first velocity vector measurement, of the mobiledevice points in an opposite direction. Accordingly, the velocitymeasurements and the acceleration vector may not correspond, which maycause the mobile device locating system 102 to determine that thepredicted location of the first mobile device does not meet an accuracythreshold.

In some embodiments, where the predicted location of the mobile devicemeets an accuracy threshold, the mobile device locating system 102 maybe configured to then transmit data corresponding to the predictedlocation of the mobile device as the new location of the mobile device.As such, in one embodiment, a first mobile device 110A may be configuredto request the location of a second mobile device 110B. In addition, thefirst mobile device 110A and the second mobile device 110B may beconfigured to share their respective locations with one another, asindicated by the respective user via an application on the respectivemobile device (e.g., an indication 401 corresponding to a sharing statuson the display of a mobile device). Accordingly, at 712 of FIG. 7, amobile device locating system 102 may be configured to transmit data toeither of the first or second mobile devices 110A, 110B that correspondsto the predicted location of either of the mobile devices as the newlocation of the respective mobile devices. The process may then end at726.

If the mobile device locating system 102 determines that the predictedlocation of the mobile device does not meet the accuracy threshold at710, the mobile device locating system may be configured to receive datacorresponding to a location of at least one device that is incommunication with the mobile device. According to one embodiment, themobile device locating system 102 may be configured to receive data ofthe location of a known networking and/or communication equipmentdevice, such as a wireless local area network router and/or a cell phonetower. In some embodiments, the mobile device locating system may beconfigured to receive data corresponding to an estimated distancebetween the known device in communication with the mobile device and themobile device. For example, a mobile device 110A may be configured toreceive a signal from a mobile device locating system 102 correspondingto an indication that the mobile device locating system 102 determinedthe predicted location of the mobile device 110A did not meet anaccuracy threshold. As such, the mobile device 110A may be configured totransmit data corresponding to the distance of the mobile device from adevice in communication with the mobile device, such as a cell phonetower and/or the like. In some embodiments, the mobile device 110A maybe configured to transmit data corresponding to the identity of theclosest device that is in communication with the mobile device, such asnetworking equipment, a cell phone tower, and/or the like. Accordingly,the mobile device locating system 102 may be configured to receive datacorresponding to the location of at least one device in communicationwith the mobile device.

In some embodiments, the mobile device locating system 102 may beconfigured to receive data corresponding to an identity of a device incommunication with the mobile device. Further, the mobile devicelocating system 102 may be configured to retrieve data corresponding tothe device in communication with the mobile device. For example, thecontextual database 106 may include data corresponding to the locationof known networking and/or communication equipment devices, such as awireless local area network router and/or a cell phone tower.Accordingly, the mobile device locating system 102 may be configured todetermine the location of the mobile device 110A based, at least inpart, on the data corresponding to the at least one device incommunication with the mobile device.

At 716, the mobile device locating system 102 may be configured todetermine the location of the mobile device based on the datacorresponding to the location of the at least one device incommunication with the mobile device 110A. For example, a mobile devicelocating system 102 may be configured to receive data corresponding to aplurality of devices that are in communication with the mobile device.As such, the mobile device locating system 102 may be configured todetermine the exact position based upon data corresponding to thedistance of the mobile device from the location of three devices thatare in communication with the mobile device, wherein the location of thethree devices in communication with the mobile device are known, storedwithin the contextual database 106, and/or transmitted to the mobiledevice locating system 102. Accordingly, at 718, a mobile devicelocating system 102 may be configured to transmit data corresponding tothe location of the mobile device based at least on the datacorresponding to the location of the at least one device incommunication with the mobile device.

In some embodiments, the mobile device locating system 102 may beconfigured to use the location of at least one device in communicationwith the mobile device, such as a cell phone tower, as a temporarylocation of the mobile device. For example, the mobile device locatingsystem 102 may be configured to receive data corresponding to thelocation of a cell phone tower at 714. In one example embodiment, thedata may further indicate that the mobile device is located within 1mile of the cell phone tower. Accordingly, the mobile device locatingsystem 102 may be configured to transmit data corresponding to thelocation of the cell phone tower as the temporary location of the mobiledevice at 718. The process 700 may then end at 726.

If the mobile device locating system 102 is unable to determine thelocation of the mobile device at 716, the mobile device locating system102 may be configured to transmit a signal corresponding to a requestfor the mobile device location at 720. For example, if the mobile devicelocating system 102 is unable to determine the location of the mobiledevice, the mobile device locating system may transmit a signal to themobile device indicating a request for the mobile device to transmitdata corresponding to the location of the mobile device.

At 722, the mobile device locating system 102 may be configured toreceive data corresponding to the current location of the mobile device.For example, in response to receiving a signal indicating a request forthe mobile device's location, a mobile device may be configured todetermine the location of the mobile device using any number of suitablemethods, such as GPS locating technology. In some embodiments, themobile device may be configured to communicate with a number of deviceshaving fixed known locations, such as cell phone towers and/ornetworking equipment, such as a wireless local area network router.Accordingly, the mobile device may be configured to determine thedistance of the mobile device from any number of these devicesconfigured to communicate with the mobile device so as to determine thelocation of the mobile device. In some embodiments, the mobile devicemay be configured to communicate with devices that are configured tocommunicate with the mobile device, which have a location unknown to themobile device locating system 102. Accordingly, the mobile devicelocating system 102 may not be able to determine the location of themobile device at 716, but the mobile device may be configured todetermine the location of the mobile device and transmit thecorresponding data to the mobile device locating system such that themobile device locating system receives data corresponding to thelocation of the mobile device at 722. As such, the mobile devicelocating system 102 may be configured to transmit data corresponding tothe current location of a first mobile device 110A to at least one othermobile device at 724. The process ends at 726.

Accordingly, embodiments herein may advantageously provide for anefficient method of determining the location of a mobile device.Specifically, the mobile device locating system 102 may be configured topredict the location of a mobile device 110A,110Z based at least uponcontextual data of the at least one mobile device. As such, the mobiledevice may not need to determine the location of the mobile device andtransmit data corresponding to the location of the mobile device to themobile device locating system. In some embodiments, the mobile devicemay transmit contextual data corresponding to the mobile device, and themobile device locating system 102 may be configured to determine thelocation of the mobile device from the contextual data. In anotherembodiment, the mobile device may be configured to transmit datacorresponding to the location of at least one device in communicationwith the mobile device, such as data corresponding to the distance ofthe mobile device from a cell phone tower. As such, embodiments mayadvantageously provide for a method of determining the location of themobile device without the mobile device having to determine the locationof the mobile device. Further, embodiments may advantageously providefor determining the location of the mobile device using suitablemethods, such as GPS locating technology, when the mobile devicelocating system is unable to accurately predict the location of themobile device.

FIG. 2 illustrates a schematic block diagram of circuitry 200, some orall of which may be included in, for example, mobile device locatingsystem 102, mobile device locating computing device 154, and/or mobiledevices 110A,110Z. As illustrated in FIG. 2, in accordance with someexample embodiments, circuitry 200 may include various means, such as aprocessor 202, memory 204, communication module 206, input/output module208 and/or location prediction module 210.

In some embodiments, such as when circuitry 200 is included in a mobiledevice locating system 102 and/or mobile device 110A, a locationprediction module 210 may be included. As referred to herein, “module”includes hardware, software and/or firmware configured to perform one ormore particular functions. In this regard, the means of circuitry 200 asdescribed herein may be embodied as, for example, circuitry, hardwareelements (e.g., a suitably programmed processor, combinational logiccircuit, and/or the like), a computer program product comprisingcomputer-readable program instructions stored on a non-transitorycomputer-readable medium (e.g., memory 204) that is executable by asuitably configured processing device (e.g., processor 202), or somecombination thereof.

Processor 202 may, for example, be embodied as various means includingone or more microprocessors with accompanying digital signalprocessor(s), one or more processor(s) without an accompanying digitalsignal processor, one or more coprocessors, one or more multi-coreprocessors, one or more controllers, processing circuitry, one or morecomputers, various other processing elements including integratedcircuits such as, for example, an ASIC (application specific integratedcircuit) or FPGA (field programmable gate array), or some combinationthereof. Accordingly, although illustrated in FIG. 2 as a singleprocessor, in some embodiments, processor 202 comprises a plurality ofprocessors. The plurality of processors may be embodied on a singlecomputing device or may be distributed across a plurality of computingdevices collectively configured to function as circuitry 200. Theplurality of processors may be in operative communication with eachother and may be collectively configured to perform one or morefunctionalities of circuitry 200 as described herein. In an exampleembodiment, processor 202 is configured to execute instructions storedin memory 204 or otherwise accessible to processor 202. Theseinstructions, when executed by processor 202, may cause circuitry 200 toperform one or more of the functionalities of circuitry 200 as describedherein.

Whether configured by hardware, firmware/software methods, or by acombination thereof, processor 202 may comprise an entity capable ofperforming operations according to embodiments of the present inventionwhile configured accordingly. Thus, for example, when processor 202 isembodied as an ASIC, FPGA or the like, processor 202 may comprisespecifically configured hardware for conducting one or more operationsdescribed herein. As another example, when processor 202 is embodied asan executor of instructions, such as may be stored in memory 204, theinstructions may specifically configure processor 202 to perform one ormore algorithms and operations described herein.

Memory 204 may comprise, for example, volatile memory, non-volatilememory, or some combination thereof. Although illustrated in FIG. 2 as asingle memory, memory 204 may comprise a plurality of memory components.The plurality of memory components may be embodied on a single computingdevice or distributed across a plurality of computing devices. Invarious embodiments, memory 204 may comprise, for example, a hard disk,random access memory, cache memory, flash memory, a compact disc readonly memory (CD-ROM), digital versatile disc read only memory (DVD-ROM),an optical disc, circuitry configured to store information, or somecombination thereof. Memory 204 may be configured to store information,data, applications, instructions, or the like for enabling circuitry 200to carry out various functions in accordance with example embodimentsdiscussed herein. For example, in at least some embodiments, memory 204is configured to buffer input data for processing by processor 202.Additionally or alternatively, in at least some embodiments, memory 204may be configured to store program instructions for execution byprocessor 202. Memory 204 may store information in the form of staticand/or dynamic information. This stored information may be stored and/orused by circuitry 200 during the course of performing itsfunctionalities.

Communications module 206 may be embodied as any device or meansembodied in circuitry, hardware, a computer program product comprisingcomputer readable program instructions stored on a computer readablemedium (e.g., memory 204) and executed by a processing device (e.g.,processor 202), or a combination thereof that is configured to receiveand/or transmit data from/to another device, such as, for example, asecond circuitry 200 and/or the like. In some embodiments,communications module 206 (like other components discussed herein) canbe at least partially embodied as or otherwise controlled by processor202. In this regard, communications module 206 may be in communicationwith processor 202, such as via a bus. Communications module 206 mayinclude, for example, an antenna, a transmitter, a receiver, atransceiver, network interface card and/or supporting hardware and/orfirmware/software for enabling communications with another computingdevice. Communications module 206 may be configured to receive and/ortransmit any data that may be stored by memory 204 using any protocolthat may be used for communications between computing devices.Communications module 206 may additionally or alternatively be incommunication with the memory 204, input/output module 208 and/or anyother component of circuitry 200, such as via a bus.

Input/output module 208 may be in communication with processor 202 toreceive an indication of a user input and/or to provide an audible,visual, mechanical, or other output to a user. Some example visualoutputs that may be provided to a user by circuitry 200 are discussed inconnection with the displays described above. As such, input/outputmodule 208 may include support, for example, for a keyboard, a mouse, ajoystick, a display, an image capturing device, a touch screen display,a microphone, a speaker, a RFID reader, barcode reader, biometricscanner, and/or other input/output mechanisms. In embodiments whereincircuitry 200 is embodied as a server or database, aspects ofinput/output module 208 may be reduced as compared to embodiments wherecircuitry 200 is implemented as an end-user machine (e.g., a mobiledevice) or other type of device designed for complex user interactions.In some embodiments (like other components discussed herein),input/output module 208 may even be eliminated from circuitry 200.Input/output module 208 may be in communication with memory 204,communications module 206, and/or any other component(s), such as via abus. Although more than one input/output module and/or other componentcan be included in circuitry 200, only one is shown in FIG. 2 to avoidovercomplicating the drawing (like the other components discussedherein).

Location prediction module 210 may also or instead be included andconfigured to perform the functionality discussed herein related tofacilitating the determination of a location of a mobile device, asdiscussed above. In some embodiments, some or all of the functionalityrelated facilitating the determination of a location of a mobile devicemay be performed by processor 202. In this regard, the example processesand algorithms discussed herein can be performed by at least oneprocessor 202 and/or location prediction module 210. For example,non-transitory computer readable storage media can be configured tostore firmware, one or more application programs, and/or other software,which include instructions and other computer-readable program codeportions that can be executed to control processors of the components ofsystem 200 to implement various operations, including the examples shownabove. As such, a series of computer-readable program code portions maybe embodied in one or more computer program products and can be used,with a computing device, server, and/or other programmable apparatus, toproduce the machine-implemented processes discussed herein.

Any such computer program instructions and/or other type of code may beloaded onto a computer, processor or other programmable apparatusescircuitry to produce a machine, such that the computer, processor orother programmable circuitry that executes the code may be the means forimplementing various functions, including those described herein.

The illustrations described herein are intended to provide a generalunderstanding of the structure of various embodiments. The illustrationsare not intended to serve as a complete description of all of theelements and features of apparatus, processors, and systems that utilizethe structures or methods described herein. Many other embodiments maybe apparent to those of skill in the art upon reviewing the disclosure.Other embodiments may be utilized and derived from the disclosure, suchthat structural and logical substitutions and changes may be madewithout departing from the scope of the disclosure. Additionally, theillustrations are merely representational and may not be drawn to scale.Certain proportions within the illustrations may be exaggerated, whileother proportions may be minimized. Accordingly, the disclosure and thefigures are to be regarded as illustrative rather than restrictive.

The above disclosed subject matter is to be considered illustrative, andnot restrictive, and the appended claims are intended to cover all suchmodifications, enhancements, and other embodiments, which fall withinthe true spirit and scope of the description. Thus, to the maximumextent allowed by law, the scope is to be determined by the broadestpermissible interpretation of the following claims and theirequivalents, and shall not be restricted or limited by the foregoingdetailed description.

That which is claimed:
 1. A method for tracking a location of at leastone mobile device, the method comprising: receiving a mobile devicecontextual data set associated with a first mobile device, wherein themobile device contextual data set comprises ambient audio data recordedby the first mobile device, wherein the mobile device contextual dataset is received via an open socket connection between the first mobiledevice and a mobile device locating system, and wherein the first mobiledevice is configured to maintain the open socket connection between thefirst mobile device and the mobile device locating system with a VoIPprotocol while the first mobile device is in a low powered state;determining a velocity and an acceleration of the first mobile device;predicting, based at least in part on the mobile device contextual dataset, the determined velocity of the first mobile device, and thedetermined acceleration of the first mobile device, a future location ofthe first mobile device; receiving, from a second mobile device via anopen socket connection between the second mobile device and the mobiledevice locating system, a request for the predicted future location ofthe first mobile device; and causing data corresponding to the futurelocation of the first mobile device to be transmitted to the secondmobile device.
 2. The method of claim 1, wherein causing datacorresponding to the future location of the first mobile device to betransmitted to the second mobile device comprises determining whetherthe second mobile device is permitted to receive the data correspondingto the future location of the first mobile device.
 3. The method ofclaim 2, wherein determining whether the second mobile device ispermitted to receive the data corresponding to the future location ofthe first mobile device comprises determining whether a user of thefirst mobile device has permitted the second mobile device to receivethe data corresponding to the future location of the first mobiledevice.
 4. The method of claim 1, wherein predicting the future locationof the first mobile device comprises comparing the future location ofthe first mobile device to an accuracy threshold.
 5. The method of claim1, wherein the mobile device contextual data set further comprises videodata recorded by the first mobile device.
 6. A mobile device locatingapparatus comprising: at least one processor; and at least one memory,the memory including computer program instructions which, when executed,in conjunction with the at least one processor, are configured to causethe apparatus to: receive a mobile device contextual data set associatedwith a first mobile device, wherein the mobile device contextual dataset comprises ambient audio data recorded by the first mobile device,wherein the mobile device contextual data set is received via an opensocket connection with the first mobile device, and wherein the firstmobile device is configured to maintain the open socket connection witha VoIP protocol while the first mobile device is in a low powered state;determine a velocity and an acceleration of the first mobile device;predict, based at least in part on the mobile device contextual dataset, the determined velocity of the first mobile device, and thedetermined acceleration of the first mobile device, a future location ofthe first mobile device; receive, from a second mobile device via anopen socket connection with the second mobile device, a request for thepredicted future location of the first mobile device; and cause datacorresponding to the future location of the first mobile device to betransmitted to the second mobile device.
 7. The mobile device locatingapparatus of claim 6, wherein the computer program instructionsconfigured to cause the mobile device locating apparatus to cause datacorresponding to the future location of the first mobile device to betransmitted to the second mobile device further comprise computerprogram instructions configured to cause the mobile device locatingapparatus to determine whether the second mobile device is permitted toreceive the data corresponding to the future location of the firstmobile device.
 8. The mobile device locating apparatus of claim 7,wherein the computer program instructions configured to cause the mobiledevice locating apparatus to determine whether the second mobile deviceis permitted to receive the data corresponding to the future location ofthe first mobile device further comprise computer program instructionsconfigured to cause the mobile device locating apparatus to determinewhether a user of the first mobile device has permitted the secondmobile device to receive the data corresponding to the future locationof the first mobile device.
 9. The mobile device locating apparatus ofclaim 6, wherein the computer program instructions configured to causethe mobile device locating apparatus to predict the future location ofthe first mobile device further comprise computer program instructionsconfigured to cause the mobile device locating apparatus to compare thefuture location of the first mobile device to an accuracy threshold. 10.The mobile device locating apparatus of claim 6, wherein the mobiledevice contextual data set further comprises video data recorded by thefirst mobile device.
 11. A computer program product comprising: at leastone computer readable non-transitory memory medium having program codeinstructions stored thereon, the program code instruction which whenexecuted by an apparatus cause the apparatus to at least: receive amobile device contextual data set associated with a first mobile device,wherein the mobile device contextual data set comprises ambient audiodata recorded by the first mobile device, wherein the mobile devicecontextual data set is received via an open socket connection with thefirst mobile device, and wherein the first mobile device is configuredto maintain the open socket connection with a VoIP protocol while thefirst mobile device is in a low powered state; determine a velocity andan acceleration of the first mobile device; predict, based at least inpart on the mobile device contextual data set, the determined velocityof the first mobile device, and the determined acceleration of the firstmobile device, a future location of the first mobile device; receive,from a second mobile device via an open socket connection with thesecond mobile device, a request for the predicted future location of thefirst mobile device; and cause data corresponding to the future locationof the first mobile device to be transmitted to the second mobiledevice.
 12. The computer program product of claim 11, wherein theprogram code instructions configured to cause the apparatus to causedata corresponding to the future location of the first mobile device tobe transmitted to the second mobile device further comprise program codeinstructions configured to cause the apparatus to determine whether thesecond mobile device is permitted to receive the data corresponding tothe future location of the first mobile device.
 13. The computer programproduct of claim 12, wherein the program code instructions configured tocause the apparatus to determine whether the second mobile device ispermitted to receive the data corresponding to the future location ofthe first mobile device further comprise program code instructionsconfigured to cause the apparatus to determine whether a user of thefirst mobile device has permitted the second mobile device to receivethe data corresponding to the future location of the first mobiledevice.
 14. The computer program product of claim 11, wherein theprogram code instructions configured to cause the apparatus to predictthe future location of the first mobile device further comprise programcode instructions configured to cause the apparatus to compare thefuture location of the first mobile device to an accuracy threshold.